package com.jie.langlangmall.portal.service;

import com.jie.langlangmall.model.UmsMember;
import org.springframework.security.core.userdetails.UserDetails;

/**
 * @Author Jie
 * @Date 2024/11/25
 * @Email 3217998214@qq.com
 * @Description 会员管理
 */
public interface UmsMemberService {

    /**
     * 获取用户信息
     *
     * @param username
     * @return
     */
    UserDetails loadUserByUsername(String username);

    UmsMember getByUsername(String username);

    /**
     * 注册
     *
     * @param username
     * @param password
     * @param telephone
     * @param authCode
     */
    void register(String username, String password, String telephone, String authCode);

    /**
     * 登录，返回token
     *
     * @param username
     * @param password
     * @return
     */
    String login(String username, String password);

    /**
     * 获取当前登录的用户的信息
     *
     * @return
     */
    UmsMember getCurrentMember();

    /**
     * 获取验证码
     *
     * @param telephone
     * @return
     */
    String generateAuthCode(String telephone);

    /**
     * 修改密码
     *
     * @param telephone
     * @param password
     * @param authCode
     */
    void updatePassword(String telephone, String password, String authCode);

    /**
     * 刷新token
     *
     * @param token
     * @return
     */
    String refreshToken(String token);

    /**
     * 修改积分值
     * @param id
     * @param integration
     */
    void updateIntegration(Long id, Integer integration);

    /**
     * 根据ID获取
     * @param memberId
     * @return
     */
    UmsMember getById(Long memberId);

}
